package com.itcoon.system.config;/**
 * @author Athric Yu
 * 2025/1/9
 **/

import org.springframework.context.annotation.Configuration;

/**
 * @author Athric Yu
 * 2025/1/9
 **/
@Configuration
public class SystemConfig {

//    @Bean
//    public OAuth2AuthorizationService authorizationService(JdbcTemplate jdbcTemplate, RegisteredClientRepository registeredClientRepository) {
//        // 创建基于JDBC的OAuth2授权服务。这个服务使用JdbcTemplate和客户端仓库来存储和检索OAuth2授权数据。
//        JdbcOAuth2AuthorizationService service = new JdbcOAuth2AuthorizationService(jdbcTemplate, registeredClientRepository);
//
//        // 创建并配置用于处理数据库中OAuth2授权数据的行映射器。
//        JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper rowMapper = new JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper(registeredClientRepository);
//        rowMapper.setLobHandler(new DefaultLobHandler());
//        ObjectMapper objectMapper = new ObjectMapper();
//        ClassLoader classLoader = JdbcOAuth2AuthorizationService.class.getClassLoader();
//        List<Module> securityModules = SecurityJackson2Modules.getModules(classLoader);
//        objectMapper.registerModules(securityModules);
//        objectMapper.registerModule(new OAuth2AuthorizationServerJackson2Module());
//        // You will need to write the Mixin for your class so Jackson can marshall it.
//
//        // 添加自定义Mixin，用于序列化/反序列化特定的类。
//        // Mixin类需要自行实现，以便Jackson可以处理这些类的序列化。
//        objectMapper.addMixIn(AdminUserPrincipal.class, UserPrincipalMixin.class);
//        objectMapper.addMixIn(Long.class, Object.class);
//
//        // 将配置好的ObjectMapper设置到行映射器中。
//        rowMapper.setObjectMapper(objectMapper);
//
//        // 将自定义的行映射器设置到授权服务中。
//        service.setAuthorizationRowMapper(rowMapper);
//        return service;
//    }
}
